Relaying incoming traffic from an input to an output is a classic switch function. Traditional switches typically support unicast traffic only. In order to support multicast traffic, switches often employ at least two stages:
1) traffic replication, and
2) traffic relaying.
In an ATM switch for example, the protocol requires that a cell enters a hop with a header specifically assigned for the cell's connection over that hop and that the outgoing header is provided by a switch employing a cell header swapping function. To support multicast ATM traffic, ATM switch designers simply added a cell replication stage to the early unicast switch structure. Hence, unicast ATM switch architectures modified to accommodate multicast traffic often employ a three-stage switch (1. cell replication, 2. cell relaying and 3. cell header swapping).
To facilitate the relaying function, a switch employs an addressing scheme with an explicit internal routing tag; also referred to as a label. Such an addressing scheme requires additional circuitry to encode a routing tag into an arriving cell, to decode the routing tag for relaying purposes and then to remove the routing tag after relaying the cell. The encoding function is primarily based on table lookup. In addition to the encoding routing function, switch designers also assign the replication function to the switch input. The table lookup at the entrance of a switch also provides the traffic filter function and encodes additional information for the cell replication function. These switches often consists of two paths: one for unicast traffic and another for multicast traffic. The unicast traffic cuts-though the replication circuitry but not the multicast. The replication circuitry relies on the multicast information in the label encoded by the input to replicate the multicast cell/packet and may require its own lookup table. Since each copy of a multicast cell leaves a switch with its own header cell, the cell header must be swapped after the cell is relayed. The header swapping function requires another layer of lookup tables. In short, an ATM switch consists of at least two layers of lookup tables: one at the input and another at the output. Depending on the complexity of a switch, it may require three or more layers of lookup tables.